package com.study.mike.common.handler;

import cn.hutool.core.util.ObjectUtil;
import com.advance.sunrise.tool.datamask.IDataMaskHandler;
import com.advance.sunrise.tool.datamask.constant.DataMaskConstant;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import org.apache.commons.lang3.StringUtils;

/**
 * @author kh
 */
public class CustomDataMaskHandler implements IDataMaskHandler {
    @Override
    public String mask(String data) {
        if (ObjectUtils.isNotEmpty(data) && DataMaskConstant.IP_PATTERN.matcher(data).find()) {
            String[] numbers = data.split("\\.");
            return numbers[0] + ".*.*." + numbers[3];
        }
        // 手机号脱敏规则
        if (ObjectUtils.isNotEmpty(data) && DataMaskConstant.PHONE_PATTERN.matcher(data).find()) {
            return StringUtils.left(data, 3).concat(StringUtils.removeStart(StringUtils.leftPad(StringUtils.right(data, 4), StringUtils.length(data), "*"), "***"));
        }
        // 邮箱
        if (ObjectUtil.isAllNotEmpty(data) && DataMaskConstant.EMAIL_PATTERN.matcher(data).find()) {
            int index = StringUtils.indexOf(data, "@");
            return StringUtils.rightPad(StringUtils.left(data, 1), index, "*").concat(StringUtils.mid(data, index, StringUtils.length(data)));
        }
//        // 姓名
//        if (ObjectUtil.isAllNotEmpty(data) && MyDataMaskConstant.NAME_PATTERN.matcher(data).find()) {
//            return StringUtils.left(data, 1).concat(StringUtils.removeStart(StringUtils.leftPad(StringUtils.right(data, 0), StringUtils.length(data), "*"), "***"));
//        }


        return data;

    }
}
